Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit 910e527cc7eb59dc8fe3d2a6f5fb10dcf7e30d92


Parents : 691f4df
Author : Mark Qvist <mark@unsigned.io>
Date : 2024-01-15T19:30:26+01:00

Terminate log tail when view is inactive

Changes

1 files changed, 18 insertions(+), 3 deletions(-)


Diff

diff --git a/nomadnet/ui/textui/Log.py b/nomadnet/ui/textui/Log.py
index b38e4b3..853acf7 100644
--- a/nomadnet/ui/textui/Log.py
+++ b/nomadnet/ui/textui/Log.py
@@ -12,10 +12,21 @@ class LogDisplay():
def __init__(self, app):
import urwid
self.app = app
- self.log_term = LogTerminal(self.app)
+ self.log_term = None
self.shortcuts_display = LogDisplayShortcuts(self.app)
- self.widget = urwid.LineBox(self.log_term)
+ self.widget = None
+
+ def show(self):
+ if self.log_term == None:
+ self.log_term = LogTerminal(self.app)
+ self.widget = urwid.LineBox(self.log_term)
+
+ def kill(self):
+ if self.log_term != None:
+ self.log_term.terminate()
+ self.log_term = None
+ self.widget = None
def shortcuts(self):
return self.shortcuts_display
@@ -26,10 +37,14 @@ class LogTerminal(urwid.WidgetWrap):
self.log_term = urwid.Terminal(
("tail", "-fn50", self.app.logfilepath),
encoding='utf-8',
- escape_sequence="up"
+ escape_sequence="up",
+ main_loop=self.app.ui.loop,
)
urwid.WidgetWrap.__init__(self, self.log_term)
+ def terminate(self):
+ self.log_term.terminate()
+
def keypress(self, size, key):
if key == "up":


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────